WinlogbeatでWindowsログモニタリング
はじめに
藤本です。
本日2本目です。本日(現地時間は昨日)、Elasticで多くのProductの新バージョンがリリースされました。
- Elasticsearch 2.2.0, 2.1.2, and 1.7.5 released
- Kibana 4.4.0 is eye meltingly colorful
- Beats 1.1.0 & Winlogbeat released
- Logstash 2.2.0 and 2.1.2 released
- Elasticsearch for Apache Hadoop 2.2.0 and 2.1.3 released
昼頃に【新機能】ShieldがKibanaに対応しましたをエントリしました。 今回はWinlogbeatを試してみましたのでご紹介します。
概要
Elasticが提供するOfficial BeatsファミリーにWinlogbeatが加わりました。その他のbeatsは下記ブログエントリをご参照ください。
- Packetbeatでパケットモニタリング
- Filebeat + boot2dockerでMacBookのログモニタリング
- Topbeat + boot2dockerでMacBookのシステムモニタリング
Winlogbeat
WinlogbeatはWindowsのWindowsログを収集するツールです。以下のようなイベントを取得することができます。
- アプリケーションイベント
- システムイベント
- セキュリティイベント
- ハードウェアイベント
Windows XP(Windows Server 2003?)以降に対応していますので、現状サポートされているWindowsには対応しているようです。
それでは早速やってみましょう。
環境
- Windows
- OS : Windows Server 2012
- Winlogbeat : 1.1.0
- Elasticsearch / Kibana
- OS : CentOS 6.7
- IPアドレス : 10.255.0.100
- Elasticsearch : 2.2.0
- Kibana : 4.4.0
やってみた
Elasticsearch、Kibanaインストール
Elasticsearch、Kibanaのインストールは【新機能】ShieldがKibanaに対応しましたのElasticsearchインストール、Kibanaインストールの章をご参照ください。
Winlogbeatインストール
公式ページよりzipファイルをダウンロードします。
PS C:\> Invoke-WebRequest https://download.elastic.co/beats/winlogbeat/winlogbeat-1.1.0-windows.zip -OutFile winlogbeat-1.1.0-windows.zip
ダウンロードしたzipファイルを解凍します。
解凍したフォルダのインストールスクリプトを実行し、winlogbeatをサービスに登録します。
PS C:\> cd .\winlogbeat-1.1.0-windows\winlogbeat-1.1.0-windows PS C:\winlogbeat-1.1.0-windows\winlogbeat-1.1.0-windows> Set-ExecutionPolicy RemoteSigned 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): y PS C:\winlogbeat-1.1.0-windows\winlogbeat-1.1.0-windows> . .\install-service-winlogbeat.ps1 Status Name DisplayName ------ ---- ----------- Stopped winlogbeat winlogbeat
Winlogbeat設定
解凍したディレクトリのymlファイルが設定ファイルです。
winlogbeat.yml
winlogbeat: registry_file: C:/ProgramData/winlogbeat/.winlogbeat.yml event_logs: - name: Application ignore_older: 72h - name: Security - name: System #metrics: #bindaddress: 'localhost:8123' output: elasticsearch: hosts: ["10.255.0.100:9200"]
- registry_file : 読み取り位置情報を記録するためのファイルパスです。サービスを再度起動しても重複なく継続した記録が可能です。logstashのsincedbのようなものだと理解しました。
-
event_logs : 対象とするWindowsログをnameに指定します。nameは以下のコマンド結果に出力されるものを指定可能です。ignore_olderで取得する期間を指定します。
PS C:\> Get-WinEvent -ListLog * | Format-List -Property LogName LogName : Application LogName : HardwareEvents LogName : Internet Explorer LogName : Key Management Service LogName : Security LogName : System LogName : Windows PowerShell LogName : ForwardedEvents LogName : Microsoft-Management-UI/Admin LogName : Microsoft-Rdms-UI/Admin LogName : Microsoft-Rdms-UI/Operational LogName : Microsoft-Windows-All-User-Install-Agent/Admin LogName : Microsoft-Windows-All-User-Install-Agent/Operational LogName : Microsoft-Windows-AppHost/Admin LogName : Microsoft-Windows-AppID/Operational (略)
- metrics : bindaddressを指定すると、http:///debug/varsにアクセスすることで、動作状況をJSON形式で取得することができます。
Winlogbeat用インデックステンプレート登録
Winlogbeatが流しこむスキーマ用にテンプレートが用意されています。そのままjsonファイルを流し込みます。
PS C:\winlogbeat-1.1.0-windows\winlogbeat-1.1.0-windows> Invoke-RestMethod -Method Put -InFile winlogbeat.template.json -Uri http://10.255.0.100:9200/_template/winlogbeat acknowledged ------------ True
起動
登録したwinlogbeatのサービスを起動します。
PS C:\winlogbeat-1.1.0-windows\winlogbeat-1.1.0-windows> Start-Service –Name winlogbeat
動作確認
Elasticsearchにデータ登録されているか確認します。 OSXから確認します。。
# curl 10.255.0.100:9200/_cat/indices yellow open winlogbeat-2016.01.18 5 1 268 0 300.3kb 300.3kb yellow open winlogbeat-2016.01.19 5 1 30 0 93.8kb 93.8kb yellow open winlogbeat-2016.01.09 5 1 756 0 749.1kb 749.1kb yellow open winlogbeat-2016.01.14 5 1 404 0 450.4kb 450.4kb yellow open winlogbeat-2016.01.25 5 1 46 0 390b 390b yellow open winlogbeat-2016.01.16 5 1 118 0 160.9kb 160.9kb yellow open winlogbeat-2016.01.17 5 1 41 0 102.9kb 102.9kb yellow open winlogbeat-2016.01.06 5 1 1527 0 1mb 1mb yellow open winlogbeat-2016.01.21 5 1 563 0 573.2kb 573.2kb yellow open winlogbeat-2012.07.26 5 1 8 0 31.6kb 31.6kb yellow open winlogbeat-2016.01.22 5 1 684 0 260b 260b yellow open winlogbeat-2016.01.11 5 1 34 0 65.3kb 65.3kb yellow open winlogbeat-2016.01.12 5 1 943 0 667.8kb 667.8kb yellow open winlogbeat-2016.01.24 5 1 165 0 260b 260b yellow open winlogbeat-2016.02.03 5 1 694 0 390b 390b yellow open winlogbeat-2016.01.20 5 1 212 0 212.5kb 212.5kb yellow open .kibana 1 1 1 0 3.1kb 3.1kb
winlogbeat-から始まるインデックスがたくさん作成されています。
続いて、Kibanaで確認します。ブラウザからKibanaのUIにアクセスします。 INDEX(winlogbeat-*)を登録します。
データは以下のようなものが登録されています。 Eventのレベル、EventID、メッセージ、ユーザー情報などWindowsログのデータが入っていますね。
可視化のサンプルとして、Eventのレベル、Event IDで以下のような円グラフを作成したりできます。
まとめ
いかがでしょうか? WindowsでもElastic社のProductはインストール・設定が簡単です。 それにしても、いつ見てもKibanaのグラフは素敵ですね〜。